/*******************************************************************************
* Copyright (c) 2009, Adobe Systems Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without 
* modification, are permitted provided that the following conditions are met:
*
* ·        Redistributions of source code must retain the above copyright 
*          notice, this list of conditions and the following disclaimer. 
*
* ·        Redistributions in binary form must reproduce the above copyright 
*		   notice, this list of conditions and the following disclaimer in the
*		   documentation and/or other materials provided with the distribution. 
*
* ·        Neither the name of Adobe Systems Incorporated nor the names of its 
*		   contributors may be used to endorse or promote products derived from
*		   this software without specific prior written permission. 
* 
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/

package com.adobe.dp.office.word;

import org.xml.sax.Attributes;

import com.adobe.dp.office.drawing.DrawingObject;
import com.adobe.dp.office.drawing.PictureData;
import com.adobe.dp.office.embedded.EmbeddedObject;

public class DrawingElement extends Element implements EmbeddedObject {

	interface Context {
		public String getPictureURL(String resId);
	}
	
	PictureData pictureData;
	
	DrawingElement() {
	}

	public void finish(Object context) {
	}

	public EmbeddedObject newChild(Object context, String ns, String name, Attributes attrs) {
		return new DrawingObject();
	}

	public void finishChild(Object context, EmbeddedObject child) {
		if( child instanceof DrawingObject ) {
			pictureData = ((DrawingObject)child).getPictureData();
			String resId = pictureData.getResourceId();
			if( resId != null )
				pictureData.setSrc(((Context)context).getPictureURL(resId));
		}
	}

	public PictureData getPictureData() {
		return pictureData;
	}
		
}
